#ifndef LOGDIALOG_H
#define LOGDIALOG_H

#include <QDialog>
#include <QTextEdit>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QLabel>
#include <QCheckBox>
#include <QDateTime>

class LogDialog : public QDialog
{
    Q_OBJECT

public:
    explicit LogDialog(QWidget *parent = nullptr);
    ~LogDialog();

    // 日志添加功能
    void appendLog(const QString &message);
    void appendLogWithTimestamp(const QString &message);
    
    // 清空日志
    void clearLog();
    
    // 保存日志到文件
    void saveLogToFile(const QString &filePath = QString());
    
    // 设置自动滚动
    void setAutoScroll(bool enable);
    
    // 获取日志内容
    QString getLogContent() const;

protected:
    void closeEvent(QCloseEvent *event) override;

private slots:
    void onClearClicked();
    void onSaveClicked();
    void onCopyClicked();
    void onAutoScrollToggled(bool enabled);

private:
    void setupUI();
    void scrollToBottom();

    // UI组件
    QTextEdit *m_logTextEdit;
    QPushButton *m_clearButton;
    QPushButton *m_saveButton;
    QPushButton *m_copyButton;
    QPushButton *m_closeButton;
    QCheckBox *m_autoScrollCheckBox;
    QLabel *m_statusLabel;
    
    // 配置
    bool m_autoScroll;
    int m_maxLines;
};

#endif // LOGDIALOG_H
